import flash.profiler.showRedrawRegions;
import flash.sampler.NewObjectSample;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.Text;
import mx.core.mx_internal;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.messaging.events.MessageEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;


private var time:Timer = new Timer(1000, 1);

[Bindable]
private var dados_produtos:ArrayCollection;

//================================================================================================================
//cuida da parte de chamar a lista de linha de produtos
[Bindable]
private var dados_linhaProdutos:ArrayCollection = new ArrayCollection;

[Bindable]
private var dados_Fabricante:ArrayCollection = new ArrayCollection;


//===================================================================================================================
 public function chama_lista_linhaProdutos():void
{
ServicoJavaProdutos.listar_linhaProdutos();
}   

//===================================================================================================================			
public function chama_lista_Fabricante():void
{
	ServicoJavaFabricante.listar_Fabricante();
}  

//===================================================================================================================			

public function FaultServicoLinhaProdutos(event:FaultEvent):void
{
	Alert.show("Erro = "+event.fault.faultString);
	//	label_status.text = "Erro de conexão";
} 
//=====================================================================================================================
public function ResultadoLinhaProdutos(event:ResultEvent):void
{
	dados_linhaProdutos = event.result as ArrayCollection;
	//		label_status.text = "Servidor conectado com sucesso";
	
}
//=================================================================================================================
//========================================================================================================
//==================================================================================================================			

//=====================================================================================================================
public function ResultadoListaFabricante(event:ResultEvent):void
{
	dados_Fabricante = event.result as ArrayCollection;
	//		label_status.text = "Servidor conectado com sucesso";
	
}
//=================================================================================================================



public function init():void
{
//	chama_lista_Fabricante();
//	chama_lista_Fabricante();
	chama_lista_produtos();
	//calculo_custo();
}
//===================================================================================================================
private function fecha_produtos():void
{
	PopUpManager.removePopUp(this);
}
//=================================================================================================================			
public function chama_lista_produtos():void
{
	ServicoJavaProdutos.listar_produtos();
}  
//===================================================================================================================			
public function FaultServicoProdutos(event:FaultEvent):void
{
	Alert.show("Erro = "+event.fault.faultString);
	//	label_status.text = "Erro de conexão";
} 
//=====================================================================================================================
public function ResultadoListaProdutos(event:ResultEvent):void
{
	
	dados_produtos = event.result as ArrayCollection;
	
	
	//		Alert.show("numero de linha "+dados_produtos ,"Sucesso na Gravação!!!!!");
	
}
//=================================================================================================================
public function chama_conexao():void
{
	ServicoJavaProdutos.conexao();
}
//=================================================================================================================			
public function gravar():void
{
	
	//	ServicoJavaProdutos.gravar_produtos(ti_codigor.text, ti_codigob.text, ti_codigo_barras.text, ti_nome.text,ti_complemento.text,ti_linha.text,ti_numero_original.text,ti_numero_fabricante.text,ti_fabricante.text, ti_unidade.text, ti_data_venda.text, ti_data_compra.text, ti_pg_catalogo.text, ti_grupo.text, ti_lista_fornecedor.text, ti_localizacao.text, ti_aplicacao.text, ti_observacao.text,Number(ti_preco_fornecedor.text), Number(ti_preco_desconto_fornecedor.text), Number(ti_preco_ipi.text), Number(ti_preco_st.text), Number (ti_preco_icms.text), Number(ti_preco_frete.text), Number(ti_preco_outros.text), Number(ti_preco_lucro_bruto.text), Number(ti_preco_desconto.text)        );
	//	ServicoJavaProdutos.gravar_produtos(ti_codigor.text, ti_codigob.text, ti_codigo_barras.text, ti_nome.text,ti_complemento.text,selecionaLinhaItem,ti_numero_original.text,ti_numero_fabricante.text,ti_fabricante.text, ti_unidade.text, ti_data_venda.text, ti_data_compra.text, ti_pg_catalogo.text, ti_grupo.text, ti_lista_fornecedor.text, ti_localizacao.text, ti_aplicacao.text, ti_observacao.text,Number(ti_preco_fornecedor.text), Number(ti_preco_desconto_fornecedor.text), Number(ti_preco_ipi.text), Number(ti_preco_st.text), Number (ti_preco_icms.text), Number(ti_preco_frete.text), Number(ti_preco_outros.text), Number(ti_preco_lucro_bruto.text), Number(ti_preco_desconto.text)        );
	ServicoJavaProdutos.gravar_produtos(ti_codigor.text, ti_codigob.text, ti_codigo_barras.text, ti_nome.text,
										ti_complemento.text, Number(selecionaLinhaItem),	ti_numero_original.text,
										ti_numero_fabricante.text,Number(selecionaFabricanteItem), ti_unidade.text,
										ti_data_venda.text, ti_data_compra.text, ti_pg_catalogo.text, ti_grupo.text, 
										ti_lista_fornecedor.text, ti_localizacao.text,ti_aplicacao.text, 
										ti_observacao.text,Number(ti_preco_fornecedor.text), 
										Number(ti_preco_desconto_fornecedor.text),Number(ti_preco_ipi.text), 
										Number(ti_preco_st.text), Number (ti_preco_icms.text), 
										Number(ti_preco_frete.text),Number(ti_preco_outros.text), 
										Number(ti_preco_lucro_bruto.text), Number(ti_preco_desconto.text), 
										ti_nomenclatura.text, Number(lb_preco_desconto_fornecedor.text), 
										Number(lb_preco_ipi.text),Number(lb_preco_frete.text),
										Number(lb_preco_st.text),Number(lb_preco_outros.text),
										Number(lb_preco_icms.text), Number(lb_preco_custo_total.text),      
										Number(ti_codigo.text));
	

	
	chama_lista_produtos();
}
//=========================================================================================================================
public function ResultadoGravarProdutos(event:ResultEvent):void
{
	if (event.result == true)
	{
		Alert.show("Registro Gravado com Sucesso","Sucesso na Gravação!!!!!");
	}
	else
	{
		Alert.show("Houve erro na gravação.","ERRO!!!!!");
	}
}	


//=====================================================================================================================
//=====================================================================================================================
public function calculo_custo():void
{
	ServicoJavaProdutos.calculo_custo(Number(ti_preco_fornecedor.text), Number(ti_preco_desconto_fornecedor.text));
}
public function Resultado_calculo_custo(event:ResultEvent):void
{
	lb_preco_desconto_fornecedor.text = event.result.toString();
	calculo_ipi();
}
public function calculo_ipi():void
{
	ServicoJavaProdutos.calculo_ipi(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(ti_preco_ipi.text));
}
public function Resultado_calculo_ipi(event:ResultEvent):void
{
	lb_preco_ipi.text = event.result.toString();
	calculo_st();
}

public function calculo_st():void
{
	ServicoJavaProdutos.calculo_st(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(ti_preco_st.text));
}
public function Resultado_calculo_st(event:ResultEvent):void
{
	lb_preco_st.text = event.result.toString();
	calculo_icms();
}
public function calculo_icms():void
{
	ServicoJavaProdutos.calculo_icms(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(ti_preco_icms.text));
}
public function Resultado_calculo_icms(event:ResultEvent):void
{
	lb_preco_icms.text = event.result.toString();
	calculo_frete();
}

public function calculo_frete():void
{
	ServicoJavaProdutos.calculo_frete(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(ti_preco_frete.text));
}
public function Resultado_calculo_frete(event:ResultEvent):void
{
	lb_preco_frete.text = event.result.toString();
	calculo_outros();
}

public function calculo_outros():void
{
	ServicoJavaProdutos.calculo_outros(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(ti_preco_outros.text));
}
public function Resultado_calculo_outros(event:ResultEvent):void
{
	lb_preco_outros.text = event.result.toString();
	calculo_custo_total();
}

public function calculo_custo_total():void
{
	ServicoJavaProdutos.calculo_custo_total(Number(ti_preco_fornecedor.text), Number(lb_preco_desconto_fornecedor.text), Number(lb_preco_ipi.text), Number(lb_preco_st.text), Number(lb_preco_icms.text), Number(lb_preco_frete.text), Number(lb_preco_outros.text));
}
public function Resultado_calculo_custo_total(event:ResultEvent):void
{
	lb_preco_custo_total.text = event.result.toString();
	calculo_lucro_bruto();
}

public function calculo_lucro_bruto():void
{
	ServicoJavaProdutos.calculo_lucro_bruto(Number(lb_preco_custo_total.text), Number(ti_preco_lucro_bruto.text));
}
public function Resultado_calculo_lucro_bruto(event:ResultEvent):void
{
	lb_preco_lucro_bruto.text = event.result.toString();
	calculo_resultado_lucro_bruto();
}

public function calculo_resultado_lucro_bruto():void
{
	ServicoJavaProdutos.calculo_resultado_lucro_bruto(Number(lb_preco_custo_total.text), Number(lb_preco_lucro_bruto.text));
}
public function Resultado_calculo_resultado_lucro_bruto(event:ResultEvent):void
{
	lb_preco_resultado_lucro_bruto.text = event.result.toString();
	calculo_desconto();
}

public function calculo_desconto():void
{
	ServicoJavaProdutos.calculo_desconto(Number(lb_preco_resultado_lucro_bruto.text), Number(ti_preco_desconto.text));
}
public function Resultado_calculo_desconto(event:ResultEvent):void
{
	lb_preco_desconto.text = event.result.toString();
	calculo_resultado_desconto();
}

public function calculo_resultado_desconto():void
{
	ServicoJavaProdutos.calculo_resultado_desconto(Number(lb_preco_resultado_lucro_bruto.text), Number(lb_preco_desconto.text));
}
public function Resultado_calculo_resultado_desconto(event:ResultEvent):void
{
	lb_preco_resultado_desconto.text = event.result.toString();
	//	calculo_desconto();
}

//=====================================================================================================================
//=====================================================================================================================	
public function limparCampos():void
{
	ti_codigor.text = "";
	ti_codigob.text = "";
	ti_codigo_barras.text = "";
	ti_nome.text = "";
	ti_complemento.text = "";
	//			ti_linha.text = "";
	ti_numero_original.text = "";
	ti_numero_fabricante.text = "";
	//			ti_fabricante.text = "";
	ti_unidade.text = "";
	ti_data_venda.text = "";
	ti_data_compra.text = "";
	ti_pg_catalogo.text = "";
	ti_grupo.text = "";
	ti_lista_fornecedor.text = "";
	ti_localizacao.text = "";
	ti_aplicacao.text = "";
	ti_observacao.text = "";
	ti_preco_fornecedor.text = "";
	ti_preco_desconto_fornecedor.text = "";
	ti_preco_ipi.text = "";
	ti_preco_st.text = "";
	ti_preco_icms.text = "";
	ti_preco_frete.text = "";
	ti_preco_outros.text = "";
	ti_preco_lucro_bruto.text = "";
	ti_preco_desconto.text = "";
	chama_lista_linhaProdutos();
	chama_lista_Fabricante();
	
	ti_codigor.setFocus();
}

//=====================================================================================================
public var selecionaLinhaItem:int;
public function selecionaLinha():void
{
	selecionaLinhaItem = comboLinha.selectedItem.id;
	
}
public var selecionaFabricanteItem:int;
public function selecionaFabricante():void
{
	selecionaFabricanteItem = comboFabricante.selectedItem.id;
	
} 

function cadastraFabricante():void
{
	
	var fabricante : Fabricante = Fabricante(PopUpManager.createPopUp(this, Fabricante, true));
	
	fabricante.addEventListener(CloseEvent.CLOSE, chamaListaFabricante);
	
}
public function chamaListaFabricante(event:CloseEvent):void
{
	chama_lista_Fabricante();
}
//=====================================================================================================
function cadastraLinha():void
{
	
	var linha : Linha = Linha(PopUpManager.createPopUp(this, Linha, true));
	
	linha.addEventListener(CloseEvent.CLOSE, chamaListaLinha);
	
}
public function chamaListaLinha(event:CloseEvent):void
{
	chama_lista_linhaProdutos();
} 

//============================================================================================================================

protected function datagrid_produtos_doubleClickHandler(event:MouseEvent):void
{
	tabbar.selectedIndex=1
}

//=====================================================================================================================


